/*
要求：规定时间内从buckets中找出唯一的毒药，每瓶毒药毒死小猪需在一定时间后有效，
     求规定时间内找到毒药需要的最少猪数量
策略：将猪的数量转化为空间维度，多维空间上的一点代表毒药，即该点对应bucket
     可以毒死任意坐标系下的猪，当多维空间包含点数量比buckets多时，对应维度便是最小猪的数量
原理：每次每只猪喝下降一维度的buckets，如果有猪被毒死，重合的那些buckets里存在毒药
    （例如三维空间，两只猪被毒死，重合的是线，一只猪可在规定时间测出；一只猪被毒死，独立的是面，两只猪可在规定时间测出）
 */
public class PoorPigs {
}
class PoorPigsSolution {
    public int poorPigs(int buckets, int minutesToDie, int minutesToTest) {
        int pigs = 0;
        int maxRound = minutesToTest/minutesToDie+1;
        while(Math.pow(maxRound,pigs)<buckets){
            pigs++;
        }
        return pigs;
    }
}